<?php


namespace app\common\wechat;


use GuzzleHttp\Client;

class TemplateMessage
{

    private $baseUri = "https://api.weixin.qq.com";
    private $timeout = 2;
    private $guzzleHttp;

    public function __construct(){

        $this->guzzleHttp = new Client(['base_uri'=>$this->baseUri, 'timeout'=>$this->timeout, 'http_errors'=>true]);

    }

    /**
     * 发送模板消息
     * @param array $data
     * @param $accessToken
     * @return bool|string
     * @throws \GuzzleHttp\Exception\GuzzleException
     */
    public function pushTemplateMessage(array $data, $accessToken){

//        $data 里面的数据格式：
//        {
//            "touser":"OPENID",
//           "template_id":"ngqIpbwh8bUfcSsECmogfXcV14J0tQlEpBO27izEYtY",
//           "url":"http://weixin.qq.com/download",
//           "data":{
//            "first": {
//                "value":"恭喜你购买成功！",
//                       "color":"#173177"
//                   },
//                   "keyword1":{
//                "value":"巧克力",
//                       "color":"#173177"
//                   },
//                   "keyword2": {
//                "value":"39.8元",
//                       "color":"#173177"
//                   },
//                   "keyword3": {
//                "value":"2014年9月22日",
//                       "color":"#173177"
//                   },
//                   "remark":{
//                "value":"欢迎再次购买！",
//                       "color":"#173177"
//                   }
//           }
//       }


        $url = '/cgi-bin/message/template/send';

        $response = $this->guzzleHttp->request('post', $url,[
           'query'=>['access_token'=>$accessToken],
            'json'=>$data

        ]);

        if($response->getStatusCode() != 200){

            return false;
        }else{

            return $response->getBody()->getContents();
        }

    }
}